En ASP.NET Core, al configurar los servicios, noto que generalmente se realiza mediante métodos de extensión que tienen el prefijo Add* . De manera similar, al configurar la canalización de middleware, tenemos métodos de extensión con el prefijo Use* .
Por ejemplo, al agregar los servicios de autenticación:
services.AddAuthentication("MyAuthService")
Y luego agregamos el Authentication middleware en la canalización (que usará los Authentication services que acabamos de agregar arriba) de esta manera:
app.UseAuthentication();
Así que tengo algunas preguntas:
Add cuando se agrega middleware a la canalización en lugar de Use ? ¿No sería más lógico que también usemos Add prefijo porque también estamos agregando un middleware a la canalización? (al menos para mí eso tendría un poco más de sentido que Use middleware ).Noté que se usa una convención similar en las aplicaciones web de NodeJs Express, pero no estoy muy familiarizado con Express. ¿ASP.NET Core está inspirado en él o viceversa?
¿Esta convención también se usa en otros marcos de servidor web (por ejemplo, para python, java, php, ruby on rails, etc.)?
Las acciones que realizamos se describen mediante los términos Agregar y Usar , respectivamente:
El término " Agregar " se refiere al acto de agregar servicios a la aplicación, sin embargo, esto no implica que se vayan a utilizar - "Agregar" implica una acción sin consecuencias directas .
El término " Uso " se refiere al acto de usarlos en su aplicación (como ya se han agregado); el término "Uso" implica una acción con consecuencias .
Su ejemplo de autenticación muestra claramente la lógica descrita anteriormente:
AddAuthentication : registra los servicios requeridos por los servicios de autenticación (el proceso de autenticación no se llevaría a cabo a menos que realmente use estos servicios registrados en la canalización de la aplicación)
UseAuthentication : agrega AuthenticationMiddleware al IApplicationBuilder especificado, lo que habilita capacidades de autenticación.